package com.ruoyi.system.domain.bo;

import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;

import java.util.Date;

import java.math.BigDecimal;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 商品日志业务对象 p_store_product_log
 *
 * @author ruoyi
 * @date 2022-08-01
 */

@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel("商品日志业务对象")
public class PStoreProductLogBo extends BaseEntity {

    /**
     * 统计ID
     */
    @ApiModelProperty(value = "统计ID", required = true)
    @NotNull(message = "统计ID不能为空", groups = { EditGroup.class })
    private Long id;

    /**
     * 类型visit,cart,order,pay,collect,refund
     */
    @ApiModelProperty(value = "类型visit,cart,order,pay,collect,refund", required = true)
    @NotBlank(message = "类型visit,cart,order,pay,collect,refund不能为空", groups = { AddGroup.class, EditGroup.class })
    private String type;

    /**
     * 商品ID
     */
    @ApiModelProperty(value = "商品ID", required = true)
    @NotNull(message = "商品ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long productId;

    /**
     * 用户ID
     */
    @ApiModelProperty(value = "用户ID", required = true)
    @NotNull(message = "用户ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long uid;

    /**
     * 是否浏览
     */
    @ApiModelProperty(value = "是否浏览", required = true)
    @NotNull(message = "是否浏览不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer visitNum;

    /**
     * 加入购物车数量
     */
    @ApiModelProperty(value = "加入购物车数量", required = true)
    @NotNull(message = "加入购物车数量不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long cartNum;

    /**
     * 下单数量
     */
    @ApiModelProperty(value = "下单数量", required = true)
    @NotNull(message = "下单数量不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long orderNum;

    /**
     * 支付数量
     */
    @ApiModelProperty(value = "支付数量", required = true)
    @NotNull(message = "支付数量不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long payNum;

    /**
     * 支付金额
     */
    @ApiModelProperty(value = "支付金额", required = true)
    @NotNull(message = "支付金额不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal payPrice;

    /**
     * 商品成本价
     */
    @ApiModelProperty(value = "商品成本价", required = true)
    @NotNull(message = "商品成本价不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal costPrice;

    /**
     * 支付用户ID
     */
    @ApiModelProperty(value = "支付用户ID", required = true)
    @NotNull(message = "支付用户ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long payUid;

    /**
     * 退款数量
     */
    @ApiModelProperty(value = "退款数量", required = true)
    @NotNull(message = "退款数量不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long refundNum;

    /**
     * 退款金额
     */
    @ApiModelProperty(value = "退款金额", required = true)
    @NotNull(message = "退款金额不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal refundPrice;

    /**
     * 收藏
     */
    @ApiModelProperty(value = "收藏", required = true)
    @NotNull(message = "收藏不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer collectNum;

    /**
     * 添加时间
     */
    @ApiModelProperty(value = "添加时间", required = true)
    @NotNull(message = "添加时间不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long addTime;


}
